package com.youth.koodoReaderManager.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import java.util.Date;

@Data // Lombok注解，生成getter、setter等方法
@Accessors(chain = true) // Lombok注解，支持链式调用
@TableName("koodo_bookmark_info") // MyBatis Plus注解，指定映射的数据库表名
public class Bookmark {

    @TableId(value = "key", type = IdType.AUTO) // MyBatis Plus注解，指定主键字段和生成策略
    @TableField("key") // MyBatis Plus注解，映射到数据库表的列名
    @ApiModelProperty(value = "书签的唯一键", required = true) // Swagger注解，描述字段
    private Integer key;

    @TableField("book_key") // MyBatis Plus注解，映射到数据库表的列名
    @ApiModelProperty(value = "所属的书籍的键")
    private Integer bookKey;

    @TableField("cfi") // MyBatis Plus注解，映射到数据库表的列名
    @ApiModelProperty(value = "标记阅读位置的cfi")
    private String cfi;

    @TableField("label") // MyBatis Plus注解，映射到数据库表的列名
    @ApiModelProperty(value = "此项书签的别名")
    private String label;

    @TableField("percentage") // MyBatis Plus注解，映射到数据库表的列名
    @ApiModelProperty(value = "此项书签的摘要")
    private Double percentage;

    @TableField("chapter") // MyBatis Plus注解，映射到数据库表的列名
    @ApiModelProperty(value = "此项书签的章节名")
    private String chapter;

    public Bookmark(Integer bookKey, String cfi, String label, Double percentage, String chapter) {
        this.bookKey = bookKey;
        this.cfi = cfi;
        this.label = label;
        this.percentage = percentage;
        this.chapter = chapter;
    }

    // 构造函数、getter和setter方法 (由Lombok的@Data注解自动生成)
}